﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Workflows.Components.Entities
{
    [Serializable]
    public class Entity
    {
        private string _Id;
        /// <summary></summary>
        public string Id
        {
            get
            {
                return this._Id;
            }
            set
            {
                this._Id = value;
            }
        }

        private Dictionary<string,object> _ComparableAttributes;
        /// <summary>attribute name -> value</summary>
        public Dictionary<string, object> ComparableAttributes
        {
            get
            {
                return this._ComparableAttributes;
            }
            set
            {
                this._ComparableAttributes = value;
            }
        }

        private string _Trace;
        /// <summary>
        /// this field is only used for debug purposes
        /// </summary>
        public string Trace
        {
            get
            {
                return this._Trace;
            }
            set
            {
                this._Trace = value;
            }
        }

        public Entity(string id, Dictionary<string, object> comparableAttrs)
        {
            this._Id = id;
            this._ComparableAttributes = comparableAttrs;
            this._Trace = string.Empty;
        }
    }
}
